package com.lagou.sort;

import org.apache.hadoop.io.*;

import java.io.IOException;

//默认TextInputFormat对文件进行逻辑切片，由RecorderReader对象进行读取 以换行符作为分隔符 读取一行数据
//key---> 每行首字符偏移量 value 是这一行内容
//该任务每行只有一个数字
//
public class Mapper extends org.apache.hadoop.mapreduce.Mapper<Object, Text, IntWritable, IntWritable> {

    //RecorderReader对象每读取文件一行数据 就调用一次map
    //本作业下 有多少个数字就有多少个key-value对
    //这里统一value值为1
    @Override
    protected void map(Object key, Text value, Context context) throws IOException, InterruptedException {

        String line = value.toString();    // 因为一行一个
        //将map的每条结果通过context.wirte()进行数据收集 进入环形缓存区
        context.write(new IntWritable(Integer.parseInt(line)), new IntWritable(1));//输入端的value值作为map阶段的key，value为1
    }
    //溢写程序启动后 会对环形缓冲区的内容进行排序


}
